package infoholders;

import java.util.List;

public class MedicalHistory {
	
	/**
	 * Field age - patient's age
	 */
	private int age;
	
	/**
	 * Enum for person's Gender
	 */
	public enum Gender{ MALE, FEMALE }
	
	/**
	 * Field gender - patient's gender
	 */
	private Gender gender;
	
	/**
	 * Field phoneNumber - patient's contact number
	 */
	private String phoneNumber;
	
	/**
	 * Field address - patient's home address
	 */
	private String address;
	
	/**
	 * Field insurance - patient's insurance provider
	 */
	private String insurance;
	
	/**
	 * Field dateOfBirth - patient's birthday
	 */
	private String dateOfBirth;

	private List<Treatment> treatmentRecord;
	/**
	 * Default constructor WILL BE
	 */
	public MedicalHistory(){
		
	}
	
	/**
	 * This class contains the patient's medical history 
	 */
	public MedicalHistory(String anAddr, String aPhoneNumber, Gender aGender, String aDateOfBirth, String anInsurance){
		setAddress(anAddr);
		setPhoneNumber(aPhoneNumber);
		setGender(aGender);
		setDateOfBirth(aDateOfBirth);
		setInsurance(anInsurance);
	}
	
	public void setAge(int age) {
		this.age = age;
	}

	public int getAge() {
		return age;
	}

	public void setGender(Gender gender) {
		this.gender = gender;
	}

	public Gender getGender() {
		return gender;
	}

	public void setPhoneNumber(String phoneNumber) {
		this.phoneNumber = phoneNumber;
	}

	public String getPhoneNumber() {
		return phoneNumber;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getAddress() {
		return address;
	}

	public void setInsurance(String insurance) {
		this.insurance = insurance;
	}

	public String getInsurance() {
		return insurance;
	}

	public void setDateOfBirth(String dateOfBirth) {
		this.dateOfBirth = dateOfBirth;
	}

	public String getDateOfBirth() {
		return dateOfBirth;
	}
	
	public void setTreatmentRecord(List<Treatment> treatmentRecord) {
		this.treatmentRecord = treatmentRecord;
	}

	public List<Treatment> getTreatmentRecord() {
		return treatmentRecord;
	}
	
	/**
	 * Overrides the default toString method
	 *
	 * @return Patient's medical history
	 */
	public String toString(){
		return "This patient's information and medical history\n" + 
			   "INFORMATION\n" + 
			   "ADDRESS: " + address + "\n" +
			   "PHONE NUMBER: " + phoneNumber + "\n" +
			   "DATE OF BIRTH: " + dateOfBirth + "\n" +
			   "INSURANCE PROVIDER: " + insurance + "\n" +
			   "MEDICAL HISTORY\n" +
			   "GENDER: " + gender + "\n" +
			   "AGE: " + age + "\n";
	}

}
